#include <bits/stdc++.h>

using namespace std;

// 思路：
// 总共有两种情况：
// 第一种：当苹果的数量小于盘子的数量时，总共有f(m,m)中分法。其他的盘子已经没有苹果放了
// 第二种：
//      当有一个空盘子的时候，相当于将m个苹果放在n-1个盘子当中，因此为f(m,n-1)
//       当没有空盘子的时候，那么每个盘子至少放一个苹果，因此还剩下m-n个苹果，那么相当于将m-n个苹果放到n个盘子当中
//       因此，总放置的方法为：f(m,n-1) + f(m-n,n)
int f(int m,int n) {
    if(m == 1 || m == 0 || n ==1) {
        return 1;
    }
    if (m < n) {
        return f(m,m);
    }
    return f(m,n-1)+f(m-n,n);
}

int main() {
    int s;
    int m,n;
    cin >> s;
    for(int i = 0;i <s;i++) {
        cin >> m >> n;
        cout << f(m,n) << endl;
    }
}